#pragma once

#include "MWTexture.h"

namespace Myway
{

class MW_ENTRY TextureManager
{
    DECLARE_SINGLETON(TextureManager);

public:
    TextureManager();
    virtual ~TextureManager();

    virtual TexturePtr CreateTexture(
        const TString128 & sName, int iWidth, int iHeight, int iMipLevel,
        PIXEL_FORMAT Format = PF_A8R8G8B8, USAGE usage = USAGE_STATIC) = 0;

	virtual TexturePtr LoadTexture(const TString128 & name, const TString128 & source, bool inFileSystem = true) = 0;
	virtual TexturePtr LoadTextureFromStream(const TString128 & name, DataStreamPtr stream) = 0;
};

}